module JqgridHelper
  PlanesAccionesJqGFields = ['accion_planificada','responsable.nombre','afectado.nombre','fecha_ejecucion','fecha_cierre','efectivo','ejecutado','clase.nombre']
  IncidentesJqGFields = ['fecha','registrado_id','funcionario_id','identificador_id','descripcion','hecho']
  #VALORES DISPONIBLES PARA <t>model: <t> :planes_acciones,:incidentes
  #VALORES DISPONIBLES PARA <t>conf: <t> :filterModel, :colNames, :colModel
  def jqg_conf(model,conf)
    self.send(model, conf)
  end

  def jqg_func(model,opts={})
    <<HTML
      function abrir(rowid){
      if (rowid == null){
        var id = $('#tabla_#{model}').getGridParam('selrow');
      }else{var id = rowid;}
      if (id == null){
        alert('Seleccione un registro de la lista');
      }
      else {window.location = '#{opts[:view]}/' + id;};
      };
HTML
  end

  private
  def planes_acciones(conf)
    case conf
    when :filterModel
      <<HTML
       [{label:'<b>Acciones en las que:</b> ', name:'tipo_lista', stype:'select',sopt:{value:"0:es afectado;1:es responsable"}}]
HTML
    when :colNames
      "['Accion Planificada','Responsable','Afectado','Fecha de Ejecucion','Fecha de Cierre','Efectivo','Ejecutado','Motivo']"
    when :colModel
      <<HTML
    [   {name: '#{PlanesAccionesJqGFields[0]}', index: '#{PlanesAccionesJqGFields[0]}', width: 200, align: 'left'},
        {name: '#{PlanesAccionesJqGFields[1]}', index: '#{PlanesAccionesJqGFields[1]}', width: 200, align: 'left', search:false, sortable:false},
        {name: '#{PlanesAccionesJqGFields[2]}', index: '#{PlanesAccionesJqGFields[2]}', width: 100, align: 'left', search:false, sortable:false},
        {name: '#{PlanesAccionesJqGFields[3]}', index: '#{PlanesAccionesJqGFields[3]}', width: 100, align: 'left'},
        {name: '#{PlanesAccionesJqGFields[4]}', index: '#{PlanesAccionesJqGFields[4]}', width: 100, align: 'left'},
        {name: '#{PlanesAccionesJqGFields[5]}', index: '#{PlanesAccionesJqGFields[5]}', width: 80, align: 'left'},
        {name: '#{PlanesAccionesJqGFields[6]}', index: '#{PlanesAccionesJqGFields[6]}', width: 80, align: 'left'},
        {name: '#{PlanesAccionesJqGFields[7]}', index: '#{PlanesAccionesJqGFields[7]}', width: 180, align: 'left', search:false, sortable:false}
      ]
HTML
    end
  end

  def incidentes(conf)
    case conf
    when :filterModel
      <<HTML
       [{label:'Hechos signifiactivos en los que <b>#{@usuario.nombre}</b>: ', name:'tipo_lista', stype:'select',sopt:{value:"0:es afectado;1:sus subordinados son afectados"}}]
HTML
    when :colNames
      "['Fecha','Quien Registro','Afectado','Quien Identifico','Descripcion','Hecho']"
    when :colModel
      <<HTML
    [   {name: '#{IncidentesJqGFields[0]}', index: '#{IncidentesJqGFields[0]}', width: 70, align: 'left'},
        {name: '#{IncidentesJqGFields[1]}', index: '#{IncidentesJqGFields[1]}', width: 200, align: 'left', search:false,},
        {name: '#{IncidentesJqGFields[2]}', index: '#{IncidentesJqGFields[2]}', width: 200, align: 'left', search:false,},
        {name: '#{IncidentesJqGFields[3]}', index: '#{IncidentesJqGFields[3]}', width: 200, align: 'left', search:false},
        {name: '#{IncidentesJqGFields[4]}', index: '#{IncidentesJqGFields[4]}', width: 100, align: 'left'},
        {name: '#{IncidentesJqGFields[5]}', index: '#{IncidentesJqGFields[5]}', width: 50, align: 'left'},
      ]
HTML
    end
  end

  def break_word(text,split_size=50)
    return text unless text.size>100
    text=text.to_s
    new_text=[]
    split_size=100
    parts=(text.size/split_size).to_i
    begin_index=0
    end_index=split_size
    for i in 1..parts
      end_index=text.size if i==parts
      new_text<<text[begin_index+1..end_index]
      begin_index=end_index
      end_index+=split_size
    end
    new_text.join('-</br>').html_safe
  end
end